/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package xmlasm.action;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.util.Map;
import utils.SimpleJSonObject;
import xmlasm.dao.UserDAO;
import xmlasm.dto.User;

/**
 *
 * @author Thuc
 */
public class LoginAction extends ActionSupport {

    private String loginUsername;
    private String loginPassword;
    private InputStream inputStream;

    public LoginAction() {
    }

    public String logIn() throws Exception {
        SimpleJSonObject resultObject = new SimpleJSonObject();

        User result = UserDAO.checkLogin(loginUsername, loginPassword);
        if (result != null) {
            if (!result.isIsActive()) {
                resultObject.put("message", "failure");
                resultObject.put("info", "Tài khoản này đã bị khóa.");
            } else {
                Map session = ActionContext.getContext().getSession();
                session.put("USER", result);
                resultObject.put("message", "success");
            }
        } else {
            resultObject.put("message", "failure");
            resultObject.put("info", "Sai tên đăng nhập hoặc password.");
        }
        inputStream = new ByteArrayInputStream(resultObject.toString().getBytes("UTF-8"));
        return SUCCESS;
    }

    //Sau nay nho lam bang Ajax
    public String logInAdmin() throws Exception {
        SimpleJSonObject resultObject = new SimpleJSonObject();
        
        User result = UserDAO.checkLogin(loginUsername, loginPassword);
        if (result != null) {
            if (!result.isIsActive()) {
                resultObject.put("message", "failure");
                resultObject.put("info", "Tài khoản này đã bị khóa.");
            } else if (!result.isIsAdmin()) {
                resultObject.put("message", "failure");
                resultObject.put("info", "Bạn không có quyền đăng nhập vào trang này.");
            } else {
                Map session = ActionContext.getContext().getSession();
                session.put("USER", result);
                resultObject.put("message", "success");
            }
        } else {
            resultObject.put("message", "failure");
            resultObject.put("info", "Sai tên đăng nhập hoặc password.");
        }
        inputStream = new ByteArrayInputStream(resultObject.toString().getBytes("UTF-8"));
        return SUCCESS;
    }

    public String logOut() throws Exception {
        Map session = ActionContext.getContext().getSession();
        session.clear();
        return SUCCESS;
    }

    public String getLoginPassword() {
        return loginPassword;
    }

    public void setLoginPassword(String password) {
        this.loginPassword = password;
    }

    public String getLoginUsername() {
        return loginUsername;
    }

    public void setLoginUsername(String username) {
        this.loginUsername = username;
    }

    public InputStream getInputStream() {
        return inputStream;
    }

    public void setInputStream(InputStream inputStream) {
        this.inputStream = inputStream;
    }
}
